#ifndef QAUDIOOUTPUTWRAPPER_H
#define QAUDIOOUTPUTWRAPPER_H

typedef void* AudioOutput;
typedef void* AudioBuffer;

#ifdef __cplusplus
extern "C"
{
#endif

// Creates an AudioOutput using settings
AudioOutput createAudioOutput(int frequency, int channels, int sampleSize);

// Starts AudioOuput
AudioBuffer startAudioOutput(AudioOutput audioOutput);

//! Checks whether AudioOutput is ready
int isAudioOutputReady(AudioOutput audioOutput);

// Gets buffer free size
int getAudioBufferFreeSize(AudioOutput audioOutput);

// Gets buffer period size
int getAudioBufferPeriodSize(AudioOutput audioOutput);

// Writes data to audioBuffer
void writeAudioBuffer(AudioBuffer audioBuffer, const char* data, int bufferSizeInBytes);

// Stops AudioOutput
void stopAudioOutput(AudioOutput audioOutput);

// Destroy AudioOutput
void destroyAudioOutput(AudioOutput audioOutput);

#ifdef __cplusplus
}
#endif

#endif
